home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 February: Tool Chest / Dev.CD Feb 94.toast / Tool Chest / Development Platforms / MPW Related / MPW Interfaces / CIncludes / Terminals.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-09-17  |  6.8 KB  |  230 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        Terminals.h
  3.  
  4.     Copyright:    © 1983-1993 by Apple Computer, Inc.
  5.                 All rights reserved.
  6.  
  7.     Version:    System 7.1 for ETO #11
  8.     Created:    Tuesday, March 30, 1993 18:00
  9.  
  10. */
  11.  
  12. #ifndef __TERMINALS__
  13. #define __TERMINALS__
  14.  
  15. #ifndef __DIALOGS__
  16. #include <Dialogs.h>
  17. #endif
  18.  
  19. #ifndef __CTBUTILITIES__
  20. #include <CTBUtilities.h>
  21. #endif
  22.  
  23. #ifndef __CONNECTIONS__
  24. #include <Connections.h>
  25. #endif
  26.  
  27.  
  28. enum {
  29.  
  30.  
  31. /* current Terminal Manager version     */
  32.  curTMVersion = 2,
  33.  
  34. /* current Terminal Manager Environment Record version     */
  35.  curTermEnvRecVers = 0,
  36.  
  37. /* error codes    */
  38.  tmGenericError = -1,
  39.  tmNoErr = 0,
  40.  tmNotSent = 1,
  41.  tmEnvironsChanged = 2,
  42.  tmNotSupported = 7,
  43.  tmNoTools = 8
  44. };
  45.  
  46. typedef    OSErr TMErr;
  47.  
  48. enum {tmInvisible         = 1 << 0,tmSaveBeforeClear     = 1 << 1,tmNoMenus             = 1 << 2,
  49.     tmAutoScroll         = 1 << 3,tmConfigChanged        = 1 << 4};
  50. typedef unsigned long TMFlags;
  51.  
  52. enum {selTextNormal         = 1 << 0,selTextBoxed         = 1 << 1,selGraphicsMarquee     = 1 << 2,
  53.     selGraphicsLasso     = 1 << 3,tmSearchNoDiacrit     = 1 << 8    /*    These are only for TMSearchTypes    */,
  54.     tmSearchNoCase         = 1 << 9};
  55. typedef unsigned short TMSearchTypes;
  56.  
  57.  
  58. typedef short TMSelTypes;
  59.  
  60. enum {cursorText = 1,cursorGraphics = 2};
  61. typedef unsigned short TMCursorTypes;
  62.  
  63. enum {tmTextTerminal         = 1 << 0,tmGraphicsTerminal     = 1 << 1};
  64. typedef unsigned short TMTermTypes;
  65.  
  66.  
  67. struct TermDataBlock {
  68.     TMTermTypes        flags;
  69.     Handle            theData;
  70.     Handle            auxData;
  71.     long            reserved;
  72. };
  73.  
  74. typedef struct TermDataBlock TermDataBlock;
  75. typedef TermDataBlock *TermDataBlockPtr, **TermDataBlockH;
  76.  
  77. struct TermEnvironRec {
  78.     short            version;
  79.     TMTermTypes        termType;
  80.     short            textRows;
  81.     short            textCols;
  82.     Point            cellSize;
  83.     Rect            graphicSize;
  84.     Point            slop;
  85.     Rect            auxSpace;
  86. };
  87.  
  88. typedef struct TermEnvironRec TermEnvironRec;
  89. typedef TermEnvironRec *TermEnvironPtr;
  90.  
  91. union TMSelection {
  92.     Rect            selRect;
  93.     RgnHandle        selRgnHandle;
  94. };
  95.  
  96. typedef union TMSelection TMSelection;
  97.  
  98. /*    TMTermTypes     */
  99. struct TermRecord {
  100.         short            procID;
  101.         TMFlags            flags;
  102.         TMErr            errCode;
  103.         long            refCon;
  104.         long            userData;
  105.         ProcPtr            defProc;
  106.         Ptr                config;
  107.         Ptr                oldConfig;
  108.         ProcPtr            environsProc;
  109.         long            reserved1;
  110.         long            reserved2;
  111.         Ptr                tmPrivate;
  112.         ProcPtr            sendProc;
  113.         ProcPtr            breakProc;
  114.         ProcPtr            cacheProc;
  115.         ProcPtr            clikLoop;
  116.         WindowPtr        owner;
  117.         Rect            termRect;
  118.         Rect            viewRect;
  119.         Rect            visRect;
  120.         long            lastIdle;
  121.         TMSelection        selection;
  122.         TMSelTypes        selType;
  123.         long            mluField;
  124. };
  125.  
  126. typedef struct TermRecord TermRecord;
  127. typedef TermRecord *TermPtr, **TermHandle;
  128.  
  129.  
  130. /*    application routines type definitions */
  131. typedef pascal long      (*TerminalSendProcPtr) (Ptr thePtr, long theSize, long refCon, CMFlags flags);
  132. typedef pascal void      (*TerminalBreakProcPtr) (long duration, long refCon);
  133. typedef pascal long      (*TerminalCacheProcPtr) (long refCon, TermDataBlock theTermData);
  134. typedef pascal void      (*TerminalSearchCallBackProcPtr) (TermHandle hTerm, short refNum, Rect foundRect);
  135. typedef pascal Boolean    (*TerminalClikLoopProcPtr) (long refCon);
  136. typedef pascal CMErr      (*TerminalEnvironsProcPtr) (long refCon, ConnEnvironRec *theEnvirons);
  137. typedef pascal void      (*TerminalChooseIdleProcPtr) (void);
  138.  
  139. #ifdef __cplusplus
  140. extern "C" {
  141. #endif
  142. pascal TMErr     InitTM(void);
  143. pascal Handle     TMGetVersion(TermHandle hTerm);
  144. pascal short     TMGetTMVersion(void);
  145.  
  146. pascal TermHandle TMNew(const Rect *termRect,const Rect *viewRect,TMFlags flags,
  147.  short procID,WindowPtr owner,TerminalSendProcPtr sendProc,TerminalCacheProcPtr cacheProc,
  148.  TerminalBreakProcPtr breakProc,TerminalClikLoopProcPtr clikLoop,TerminalEnvironsProcPtr environsProc,
  149.  long refCon,long userData);
  150.  
  151. pascal void     TMDispose(TermHandle hTerm);
  152.  
  153. pascal void     TMKey(TermHandle hTerm,const EventRecord *theEvent);
  154. pascal void     TMUpdate(TermHandle hTerm,RgnHandle visRgn);
  155. pascal void     TMPaint(TermHandle hTerm,const TermDataBlock *theTermData,const Rect *theRect);
  156. pascal void     TMActivate(TermHandle hTerm,Boolean activate);
  157. pascal void     TMResume(TermHandle hTerm,Boolean resume);
  158. pascal void     TMClick(TermHandle hTerm,const EventRecord *theEvent);
  159. pascal void     TMIdle(TermHandle hTerm);
  160.  
  161. pascal long     TMStream(TermHandle hTerm,void *theBuffer,long theLength,CMFlags flags);
  162. pascal Boolean     TMMenu(TermHandle hTerm,short menuID,short item);
  163.  
  164. pascal void     TMReset(TermHandle hTerm);
  165. pascal void     TMClear(TermHandle hTerm);
  166.  
  167. pascal void        TMResize(TermHandle hTerm,const Rect *newViewRect);
  168.  
  169. pascal long     TMGetSelect(TermHandle hTerm,Handle theData,ResType *theType);
  170. pascal void     TMGetLine(TermHandle hTerm,short lineNo,TermDataBlock *theTermData);
  171. pascal void     TMSetSelection(TermHandle hTerm,const TMSelection *theSelection,
  172.  TMSelTypes selType);
  173.  
  174. pascal void     TMScroll(TermHandle hTerm,short dh,short dv);
  175.  
  176. pascal Boolean     TMValidate(TermHandle hTerm);
  177. pascal void     TMDefault(Ptr *theConfig,short procID,Boolean allocate);
  178.  
  179. pascal Handle     TMSetupPreflight(short procID,long *magicCookie);
  180. pascal void     TMSetupSetup(short procID,const void *theConfig,short count,
  181.  DialogPtr theDialog,long *magicCookie);
  182. pascal Boolean     TMSetupFilter(short procID,const void *theConfig,short count,
  183.  DialogPtr theDialog,EventRecord *theEvent,short *theItem,long *magicCookie);
  184. pascal void     TMSetupItem(short procID,const void *theConfig,short count,
  185.  DialogPtr theDialog,short *theItem,long *magicCookie);
  186. pascal void     TMSetupXCleanup(short procID,const void *theConfig,short count,
  187.  DialogPtr theDialog,Boolean OKed,long *magicCookie);
  188. pascal void     TMSetupPostflight(short procID);
  189.  
  190. pascal Ptr         TMGetConfig(TermHandle hTerm);
  191. pascal short     TMSetConfig(TermHandle hTerm,const void *thePtr);
  192.  
  193. pascal OSErr     TMIntlToEnglish(TermHandle hTerm,const void *inputPtr,Ptr *outputPtr,
  194.  short language);
  195. pascal OSErr     TMEnglishToIntl(TermHandle hTerm,const void *inputPtr,Ptr *outputPtr,
  196.  short language);
  197.  
  198. pascal void     TMGetToolName(short id,Str255 name);
  199. pascal short     TMGetProcID(ConstStr255Param name);
  200.  
  201. pascal void     TMSetRefCon(TermHandle hTerm,long refCon);
  202. pascal long     TMGetRefCon(TermHandle hTerm);
  203.  
  204. pascal void     TMSetUserData(TermHandle hTerm,long userData);
  205. pascal long     TMGetUserData(TermHandle hTerm);
  206.  
  207. pascal short     TMAddSearch(TermHandle hTerm,ConstStr255Param theString,const Rect *where,
  208.                             TMSearchTypes searchType,TerminalSearchCallBackProcPtr callBack);
  209. pascal void     TMRemoveSearch(TermHandle hTerm,short refnum);
  210. pascal void     TMClearSearch(TermHandle hTerm);
  211.  
  212. pascal Point     TMGetCursor(TermHandle hTerm,TMCursorTypes cursType);
  213.  
  214. pascal TMErr     TMGetTermEnvirons(TermHandle hTerm,TermEnvironRec *theEnvirons);
  215.  
  216. pascal short     TMChoose(TermHandle *hTerm,Point where,TerminalChooseIdleProcPtr idleProc);
  217.  
  218. pascal void     TMEvent(TermHandle hTerm,const EventRecord *theEvent);
  219.  
  220. pascal Boolean     TMDoTermKey(TermHandle hTerm,ConstStr255Param theKey);
  221. pascal short     TMCountTermKeys(TermHandle hTerm);
  222. pascal void     TMGetIndTermKey(TermHandle hTerm,short id,Str255 theKey);
  223.  
  224. pascal void        TMGetErrorString(TermHandle hTerm,short id,Str255 errMsg);
  225. #ifdef __cplusplus
  226. }
  227. #endif
  228.  
  229. #endif
  230.